﻿using Logica.Comandos;
using Logica.Comandos.ComandoAdministracionLogin.ComandoUsuario;

namespace Logica.FabricaLogica.FabricaAdministracionLogin
{
    /// <summary>
    /// Clase que controla 
    /// </summary>
    public class FabricaComandoUsuario
    {
        /// <summary>
        /// Valida el usuario recibido como parámetro
        /// </summary>
        /// <param name="usuario">Usuario a validar</param>
        /// <returns>Comando para validar el usuario</returns>
        public static Comando CrearComandoValidarUsuario( Usuario usuario )
        {
            return new ComandoValidarUsuario( usuario );
        }

        /// <summary>
        /// Crea un usuario con la información recibida como parámetro
        /// </summary>
        /// <param name="usuario">Usuario a crear</param>
        /// <returns>Comando para crear el usuario</returns>
        public static Comando CrearComandoCrearUsuario( Usuario usuario )
        {
            return new ComandoCrearUsuario( usuario );
        }

        /// <summary>
        /// Modifica el usuario recibido como parámetro
        /// </summary>
        /// <param name="usuario">Usuario a modificar</param>
        /// <returns>Comando para modificar el usuario</returns>
        public static Comando CrearComandoModificarUsuario( Usuario usuario )
        {
            return new ComandoModificarUsuario( usuario );
        }

        /// <summary>
        /// Busca el usuario recibido como parámetro
        /// </summary>
        /// <param name="usuario">Usuario a buscar</param>
        /// <returns>Comando para buscar el usuario</returns>
        public static Comando CrearComandoBuscarUsuario( string nombreUsuario )
        {
            return new ComandoBuscarUsuario( nombreUsuario );
        }
    }
}
